static long sleepus;
static int getposn;
static int append_output;
+static int amod_waypoint;
static time_t last_time;
static double last_read_time; /* Last timestamp of GGA or PRMC */
* going from 235959 to 000000. */
nmea_set_waypoint_time(curr_waypt, &tm, microseconds);
}
- return;
+ if (!amod_waypoint)
+ return;
}
waypt = waypt_new();
nmea_release_wpt(curr_waypt);
curr_waypt = waypt;
+
+ if (amod_waypoint) {
+ waypt_add(waypt_dupe(waypt));
+ amod_waypoint = 0;
+ }
}
static void
} else
if (opt_gpgsa && (0 == strncmp(tbuf, "$GPGSA,",7))) {
gpgsa_parse(tbuf); /* GPS fix */
- }
+ } else
+ if (0 == strncmp(tbuf, "$ADPMB,5,0", 10)) {
+ amod_waypoint = 1;
+ }
if (tbuf != ibuf) {
/* clear up the dynamic buffer we used because substition was required */
--- /dev/null
+$GPWPL,3549.499,N,08650.824,W,WPT001*31
+$GPWPL,3549.499,N,08650.824,W,WPT002*32
+$GPRMC,200641.000,V,3549.499,N,08650.824,W,0.00,224.45,050608,,*03
+$GPGGA,200641.000,3549.499,N,08650.824,W,0,00,0.0,0.000,M,0.0,M,,*74
+$GPVTG,224.450,T,0,M,0.000,N,0.000,K*55
+$GPRMC,200642.000,A,3549.499,N,08650.824,W,0.00,224.45,050608,,*17
+$GPGGA,200642.000,3549.499,N,08650.824,W,1,07,1.1,269.900,M,0.0,M,,*75
+$GPVTG,224.450,T,0,M,0.000,N,0.000,K*55
+$GPGSA,A,3,,,,,,,,,,,,,2.1,1.1,1.8*38
+$GPRMC,200643.000,A,3549.499,N,08650.824,W,0.00,224.45,050608,,*16
+$GPGGA,200643.000,3549.499,N,08650.824,W,1,07,1.1,269.900,M,0.0,M,,*74
+$GPVTG,224.450,T,0,M,0.000,N,0.000,K*55
+$GPGSA,A,3,,,,,,,,,,,,,2.1,1.1,1.8*38
+$GPRMC,200644.000,A,3549.499,N,08650.824,W,0.00,224.45,050608,,*11
+$GPGGA,200644.000,3549.499,N,08650.824,W,1,06,1.3,269.900,M,0.0,M,,*70
+$GPVTG,224.450,T,0,M,0.000,N,0.000,K*55
+$GPGSA,A,3,,,,,,,,,,,,,2.2,1.3,1.8*39
--- /dev/null
+A simple NMEA file recorded by the AMOD 3080. Note the two ADPMB button
+presses that indicate a waypoint.
+$GPGSA,A,3,32,31,20,14,30,16,22,,,,,,2.1,1.1,1.8*38
+$ADPMB,5,0
+$GPRMC,200641.000,A,3549.4991,N,08650.8239,W,0.00,224.45,050608,,,A*76
+$GPVTG,224.45,T,,M,0.00,N,0.0,K,A*08
+$GPGGA,200642.000,3549.4991,N,08650.8239,W,1,07,1.1,269.9,M,-31.4,M,,0000*61
+$GPGLL,3549.4991,N,08650.8239,W,200642.000,A,A*4C
+$GPGSA,A,3,32,31,20,14,30,16,22,,,,,,2.1,1.1,1.8*38
+$GPRMC,200642.000,A,3549.4991,N,08650.8239,W,0.00,224.45,050608,,,A*75
+$GPVTG,224.45,T,,M,0.00,N,0.0,K,A*08
+$GPGGA,200643.000,3549.4991,N,08650.8239,W,1,07,1.1,269.9,M,-31.4,M,,0000*60
+$GPGLL,3549.4991,N,08650.8239,W,200643.000,A,A*4D
+$GPGSA,A,3,32,31,20,14,30,16,22,,,,,,2.1,1.1,1.8*38
+$GPGSV,3,1,12,32,71,259,32,31,67,014,30,16,38,177,13,20,36,307,30*7A
+$GPGSV,3,3,12,23,09,299,26,29,06,081,,11,04,263,,05,02,037,*70
+$GPRMC,200643.000,A,3549.4991,N,08650.8239,W,0.00,224.45,050608,,,A*74
+$GPVTG,224.45,T,,M,0.00,N,0.0,K,A*08
+$GPGGA,200644.000,3549.4991,N,08650.8239,W,1,06,1.3,269.9,M,-31.4,M,,0000*64
+$GPGLL,3549.4991,N,08650.8239,W,200644.000,A,A*4A
+$GPGSA,A,3,32,31,20,14,30,22,,,,,,,2.2,1.3,1.8*3E
+$ADPMB,5,0
+$GPRMC,200644.000,A,3549.4991,N,08650.8239,W,0.00,224.45,050608,,,A*73
+$GPVTG,224.45,T,,M,0.00,N,0.0,K,A*08
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<gpx
+ version="1.0"
+creator="GPSBabel - http://www.gpsbabel.org"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xmlns="http://www.topografix.com/GPX/1/0"
+xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
+<time>1970-01-01T00:00:00Z</time>
+<bounds minlat="35.824985000" minlon="-86.847065000" maxlat="35.824985000" maxlon="-86.847065000"/>
+<wpt lat="35.824985000" lon="-86.847065000">
+<time>2008-06-05T20:06:41Z</time>
+ <name>WPT001</name>
+ <cmt>WPT001</cmt>
+ <desc>WPT001</desc>
+</wpt>
+<wpt lat="35.824985000" lon="-86.847065000">
+<time>2008-06-05T20:06:44Z</time>
+ <name>WPT002</name>
+ <cmt>WPT002</cmt>
+ <desc>WPT002</desc>
+</wpt>
+<trk>
+<trkseg>
+<trkpt lat="35.824985000" lon="-86.847065000">
+<time>2008-06-05T20:06:41Z</time>
+ <course>224.449997</course>
+ <speed>0.000000</speed>
+</trkpt>
+<trkpt lat="35.824985000" lon="-86.847065000">
+ <ele>269.900000</ele>
+<time>2008-06-05T20:06:42Z</time>
+ <course>224.449997</course>
+ <speed>0.000000</speed>
+ <fix>3d</fix>
+ <sat>7</sat>
+ <hdop>1.100000</hdop>
+ <vdop>1.800000</vdop>
+ <pdop>2.100000</pdop>
+</trkpt>
+<trkpt lat="35.824985000" lon="-86.847065000">
+ <ele>269.900000</ele>
+<time>2008-06-05T20:06:43Z</time>
+ <course>224.449997</course>
+ <speed>0.000000</speed>
+ <fix>3d</fix>
+ <sat>7</sat>
+ <hdop>1.100000</hdop>
+ <vdop>1.800000</vdop>
+ <pdop>2.100000</pdop>
+</trkpt>
+<trkpt lat="35.824985000" lon="-86.847065000">
+ <ele>269.900000</ele>
+<time>2008-06-05T20:06:44Z</time>
+ <course>224.449997</course>
+ <speed>0.000000</speed>
+ <fix>3d</fix>
+ <sat>6</sat>
+ <hdop>1.300000</hdop>
+ <vdop>1.800000</vdop>
+ <pdop>2.200000</pdop>
+</trkpt>
+</trkseg>
+</trk>
+</gpx>
${PNAME} -i nmea -f ${REFERENCE}/track/nmea+ms.txt -o gpx -F ${TMPDIR}/nmea+ms.gpx
compare ${TMPDIR}/nmea+ms.gpx ${REFERENCE}/track/nmea+ms.gpx
+#
+# Read an NMEA file with AMOD 3808 waypoints. Be sure we read the points.
+# Also write as a "normal" NMEA to be sure AMOD extensions don't leak.
+#
+
+${PNAME} -i nmea -f reference/track/amod-nmea -o gpx -F ${TMPDIR}/amod-out.gpx -o nmea -F ${TMPDIR}/amod-pure
+compare ${TMPDIR}/amod-out.gpx reference/track/amod.gpx
+compare ${TMPDIR}/amod-pure reference/track/amod-cleansed
+
+
#
# Wfff.
#